package com.glsc.ngateway.common.base.domain.oracle.xinyizj;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;

@ToString
@Data
@Entity
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "EA_FS.FS_BANK_BAL")
public class FsBankBal {

    @Id
    @ApiModelProperty(value = "银行账户ID")
    @Column(name = "BANK_ACC_ID", columnDefinition = "NUMBER(10,0) COMMENT '银行账户ID'")
    private Long bankAccId;

    @ApiModelProperty(value = "余额日期")
    @Column(name = "BAL_DATE", columnDefinition = "NUMBER(10,0) COMMENT '余额日期'")
    private Long balDate;

    @ApiModelProperty(value = "币种")
    @Column(name = "CUR_TYPE", columnDefinition = "VARCHAR2(100) COMMENT '币种'")
    private String curType;

    @ApiModelProperty(value = "登记机构")
    @Column(name = "REG_CORP", columnDefinition = "VARCHAR2(100) COMMENT '登记机构'")
    private String regCorp;

    @ApiModelProperty(value = "备付金账户代码")
    @Column(name = "PROVIS_ACC_CODE", columnDefinition = "VARCHAR2(100) COMMENT '备付金账户代码'")
    private String provisAccCode;

    @ApiModelProperty(value = "账户余额")
    @Column(name = "ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '账户余额'")
    private BigDecimal accBal;

    @ApiModelProperty(value = "账户可提款额")
    @Column(name = "DRAW_BAL", columnDefinition = "NUMBER(19,2) COMMENT '账户可提款额'")
    private BigDecimal drawBal;

    @ApiModelProperty(value = "尚未支付金额")
    @Column(name = "NOT_PAY_BAL", columnDefinition = "NUMBER(19,2) COMMENT '尚未支付金额'")
    private BigDecimal notPayBal;

    @ApiModelProperty(value = "可用余额")
    @Column(name = "AVA_BAL", columnDefinition = "NUMBER(19,2) COMMENT '可用余额'")
    private BigDecimal avaBal;

    @ApiModelProperty(value = "最低备付金")
    @Column(name = "LOWEST_BAL", columnDefinition = "NUMBER(19,2) COMMENT '最低备付金'")
    private BigDecimal lowestBal;

    @ApiModelProperty(value = "冻结金额")
    @Column(name = "FROZEN_BAL", columnDefinition = "NUMBER(19,2) COMMENT '冻结金额'")
    private BigDecimal frozenBal;

    @ApiModelProperty(value = "锁定金额")
    @Column(name = "LOCK_BAL", columnDefinition = "NUMBER(19,2) COMMENT '锁定金额'")
    private BigDecimal lockBal;

    @ApiModelProperty(value = "昨日维持保证金")
    @Column(name = "LAST_HOLD_BAL", columnDefinition = "NUMBER(19,2) COMMENT '昨日维持保证金'")
    private BigDecimal lastHoldBal;

    @ApiModelProperty(value = "ETF 行权锁定资金")
    @Column(name = "ETF_LOCK_BAL", columnDefinition = "NUMBER(19,2) COMMENT 'ETF 行权锁定资金'")
    private BigDecimal etfLockBal;

    @ApiModelProperty(value = "最低结算准备金额")
    @Column(name = "LOWEST_SETTLE_BAL", columnDefinition = "NUMBER(19,2) COMMENT '最低结算准备金额'")
    private BigDecimal lowestSettleBal;

    @ApiModelProperty(value = "ETF 行权应收应付资金额度")
    @Column(name = "ETF_RP_BAL", columnDefinition = "NUMBER(19,2) COMMENT 'ETF 行权应收应付资金额度'")
    private BigDecimal etfRpBal;

    @ApiModelProperty(value = "可用信用余额")
    @Column(name = "AVL_CREDIT_BALANCE", columnDefinition = "NUMBER(19,2) COMMENT '可用信用余额'")
    private BigDecimal avlCreditBalance;

    @ApiModelProperty(value = "冻结信用余额")
    @Column(name = "FRZ_CREDIT_BALANCE", columnDefinition = "NUMBER(19,2) COMMENT '冻结信用余额'")
    private BigDecimal frzCreditBalance;

    @ApiModelProperty(value = "可用担保品余额")
    @Column(name = "AVL_COLLATERAL_BALANCE", columnDefinition = "NUMBER(19,2) COMMENT '可用担保品余额'")
    private BigDecimal avlCollateralBalance;

    @ApiModelProperty(value = "冻结担保品余额")
    @Column(name = "FRZ_COLLATERAL_BALANCE", columnDefinition = "NUMBER(19,2) COMMENT '冻结担保品余额'")
    private BigDecimal frzCollateralBalance;

    @ApiModelProperty(value = "最后更新时间")
    @Column(name = "UPDATE_DATE")
    private Date updateDate;

    @ApiModelProperty(value = "T+1日开市前待收付金额")
    @Column(name = "NEXT_BEFORE_OPEN_AMT", columnDefinition = "NUMBER(19,2) COMMENT 'T+1日开市前待收付金额'")
    private BigDecimal nextBeforeOpenAmt;

    @ApiModelProperty(value = "日终资金交收状态")
    @Column(name = "SETTLE_STATUS", columnDefinition = "VARCHAR2(100) COMMENT '日终资金交收状态'")
    private String settleStatus;

    @ApiModelProperty(value = "当日取款笔数")
    @Column(name = "DAY_DRAW_NUM", columnDefinition = "NUMBER(8,0) COMMENT '当日取款笔数'")
    private BigDecimal dayDrawNum;

    @ApiModelProperty(value = "当日存款笔数")
    @Column(name = "DAY_DEPOSIT_NUM", columnDefinition = "NUMBER(8,0) COMMENT '当日存款笔数'")
    private BigDecimal dayDepositNum;

    @ApiModelProperty(value = "当日取款金额")
    @Column(name = "DAY_DRAW_BAL", columnDefinition = "NUMBER(19,2) COMMENT '当日取款金额'")
    private BigDecimal dayDrawBal;

    @ApiModelProperty(value = "当日存款金额")
    @Column(name = "DAY_DEPOSIT_BAL", columnDefinition = "NUMBER(19,2) COMMENT '当日存款金额'")
    private BigDecimal dayDepositBal;

    @ApiModelProperty(value = "余额积数")
    @Column(name = "PRODUCT_BAL", columnDefinition = "NUMBER(19,2) COMMENT '余额积数'")
    private BigDecimal productBal;

    @ApiModelProperty(value = "日初余额")
    @Column(name = "BEGIN_DAY_BAL", columnDefinition = "NUMBER(19,2) COMMENT '日初余额'")
    private BigDecimal beginDayBal;

    @ApiModelProperty(value = "结息利率")
    @Column(name = "INTEREST_RATE", columnDefinition = "VARCHAR2(100) COMMENT '结息利率'")
    private String interestRate;

    @ApiModelProperty(value = "可划金额")
    @Column(name = "TRANSFER_BAL", columnDefinition = "NUMBER(19,2) COMMENT '可划金额'")
    private BigDecimal transferBal;

    @ApiModelProperty(value = "日终余额")
    @Column(name = "END_DAY_BAL", columnDefinition = "NUMBER(19,2) COMMENT '日终余额'")
    private BigDecimal endDayBal;

    @ApiModelProperty(value = "账户展示余额")
    @Column(name = "SHOW_ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '账户展示余额'")
    private BigDecimal showAccBal;

    @ApiModelProperty(value = "新股申购应付金额(中登接口:HA_ZJYE的ZJ2)")
    @Column(name = "REG_IPO_AMT", columnDefinition = "NUMBER(19,2) COMMENT '新股申购应付金额(中登接口:HA_ZJYE的ZJ2)'")
    private BigDecimal regIpoAmt;

    @ApiModelProperty(value = "日初可用余额")
    @Column(name = "BEGIN_DAY_AVA_BAL", columnDefinition = "NUMBER(19,2) COMMENT '日初可用余额'")
    private BigDecimal beginDayAvaBal;

    @ApiModelProperty(value = "代收代付应收资金")
    @Column(name = "DSDFYS_AMT", columnDefinition = "NUMBER(19,2) COMMENT '代收代付应收资金'")
    private BigDecimal dsdfysAmt;

    @ApiModelProperty(value = "担保交收净额")
    @Column(name = "STL_01_NET_AMT", columnDefinition = "NUMBER(19,2) COMMENT '担保交收净额'")
    private BigDecimal stl01NetAmt;

    @ApiModelProperty(value = "透支金额")
    @Column(name = "OVER_DRAFT_AMT", columnDefinition = "NUMBER(19,2) COMMENT '透支金额'")
    private BigDecimal overDraftAmt;

    @ApiModelProperty(value = "上日余额")
    @Column(name = "YEST_BAL", columnDefinition = "NUMBER(19,2) COMMENT '上日余额'")
    private BigDecimal yestBal;

    @ApiModelProperty(value = "借贷标志D 借C 贷")
    @Column(name = "DC_FLAG", columnDefinition = "VARCHAR2(100) COMMENT '借贷标志D 借C 贷'")
    private String dcFlag;

    @ApiModelProperty(value = "上日借贷标志D 借C 贷")
    @Column(name = "SC_Y_DC_FLAG", columnDefinition = "VARCHAR2(100) COMMENT '上日借贷标志D 借C 贷'")
    private String scYDcFlag;

    @ApiModelProperty(value = "上日账户余额")
    @Column(name = "SC_Y_ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '上日账户余额'")
    private BigDecimal scYAccBal;

    @ApiModelProperty(value = "上日可用余额")
    @Column(name = "SC_Y_AVA_BAL", columnDefinition = "NUMBER(19,2) COMMENT '上日可用余额'")
    private BigDecimal scYAvaBal;

    @ApiModelProperty(value = "上日冻结余额")
    @Column(name = "SC_Y_FROZEN_BAL", columnDefinition = "NUMBER(19,2) COMMENT '上日冻结余额'")
    private BigDecimal scYFrozenBal;

    @ApiModelProperty(value = "上清所更新时间")
    @Column(name = "SC_UPDATE_TM", columnDefinition = "VARCHAR2(100) COMMENT '上清所更新时间'")
    private String scUpdateTm;

    @ApiModelProperty(value = "上清所账户类别")
    @Column(name = "SC_ACC_TYPE", columnDefinition = "VARCHAR2(100) COMMENT '上清所账户类别'")
    private String scAccType;

    @ApiModelProperty(value = "本日借方发生额")
    @Column(name = "SC_D_AMT", columnDefinition = "NUMBER(19,2) COMMENT '本日借方发生额'")
    private BigDecimal scDAmt;

    @ApiModelProperty(value = "本日贷方发生额")
    @Column(name = "SC_C_AMT", columnDefinition = "NUMBER(19,2) COMMENT '本日贷方发生额'")
    private BigDecimal scCAmt;

    @ApiModelProperty(value = "本日借方笔数")
    @Column(name = "SC_D_CN", columnDefinition = "NUMBER(19,0) COMMENT '本日借方笔数'")
    private BigDecimal scDCn;

    @ApiModelProperty(value = "本日贷方笔数")
    @Column(name = "SC_C_CN", columnDefinition = "NUMBER(19,0) COMMENT '本日贷方笔数'")
    private BigDecimal scCCn;

    @ApiModelProperty(value = "余额文件尚未支付金额")
    @Column(name = "FILE_NOT_PAY_BAL", columnDefinition = "NUMBER(19,2) COMMENT '余额文件尚未支付金额'")
    private BigDecimal fileNotPayBal;

    @ApiModelProperty(value = "按公式计算的账户余额")
    @Column(name = "CALC_ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '按公式计算的账户余额'")
    private BigDecimal calcAccBal;

    @ApiModelProperty(value = "实际账户余额")
    @Column(name = "REAL_ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '实际账户余额'")
    private BigDecimal realAccBal;

    @ApiModelProperty(value = "非债券类最低备付比例")
    @Column(name = "LOWEST_RATE", columnDefinition = "NUMBER(19,5) COMMENT '非债券类最低备付比例'")
    private BigDecimal lowestRate;

    @ApiModelProperty(value = "非债券类买入总额")
    @Column(name = "LOWEST_BUY_AMT", columnDefinition = "NUMBER(19,2) COMMENT '非债券类买入总额'")
    private BigDecimal lowestBuyAmt;

    @ApiModelProperty(value = "本月最低备付限额")
    @Column(name = "LOWEST_LIMIT_AMT", columnDefinition = "NUMBER(19,2) COMMENT '本月最低备付限额'")
    private BigDecimal lowestLimitAmt;

    @ApiModelProperty(value = "15:45-16:00可用/可提余额")
    @Column(name = "BEFORE_16_SHOW_ACC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '15:45-16:00可用/可提余额'")
    private BigDecimal before16ShowAccBal;

    @ApiModelProperty(value = "最低备付金生效日期")
    @Column(name = "LOWEST_VALID_DATE", columnDefinition = "NUMBER(8,0) COMMENT '最低备付金生效日期'")
    private BigDecimal lowestValidDate;

    @ApiModelProperty(value = "债券回购类最低备付比例")
    @Column(name = "LOWEST_RATE2", columnDefinition = "NUMBER(19,5) COMMENT '债券回购类最低备付比例'")
    private BigDecimal lowestRate2;

    @ApiModelProperty(value = "债券现券类最低备付比例")
    @Column(name = "LOWEST_RATE3", columnDefinition = "NUMBER(19,5) COMMENT '债券现券类最低备付比例'")
    private BigDecimal lowestRate3;

    @ApiModelProperty(value = "债券回购类买入总额")
    @Column(name = "LOWEST_BUY_AMT2", columnDefinition = "NUMBER(19,2) COMMENT '债券回购类买入总额'")
    private BigDecimal lowestBuyAmt2;

    @ApiModelProperty(value = "债券现券类买入总额")
    @Column(name = "LOWEST_BUY_AMT3", columnDefinition = "NUMBER(19,2) COMMENT '债券现券类买入总额'")
    private BigDecimal lowestBuyAmt3;

    @ApiModelProperty(value = "货银对付核验计算的可用/可提余额")
    @Column(name = "DVP_CALC_BAL", columnDefinition = "NUMBER(19,2) COMMENT '货银对付核验计算的可用/可提余额'")
    private BigDecimal dvpCalcBal;


}
